note
	description : "Allow to parse a line"
	date        : "$Date$"
	revision    : "$Revision$"

class
	PARSER

--inherit
--ARGUMENTS

create
	make

feature {PARSER}
	pers: PERSONNAGE
    ses: SESSION
    obj: OBJET
    act:ACTION
    ens_obj: ENS_OBJET
    jeu:JEU


feature {ANY} -- Initialization

	make
			-- Run application.
		do
		end

	parseur (chaine:STRING) is
	local
	chaine_decomposee: LIST [STRING]
	i: INTEGER

	do
		 create pers.make("titi")
		 create ses.make
		 create ens_obj.make
		 create jeu.make
         chaine_decomposee := chaine.split(' ') ;

               -- s'il s'agit d'un login
	           if (chaine_decomposee.at (i).is_equal ("login") )
	           then
	                   ses.login(chaine_decomposee.at (3))
                       io.put_string(" Le nom du jeu:"+ chaine_decomposee.at (4) +") %N")
               end -- fin login

               -- s'il s'agit d'une action
               if (chaine_decomposee.at (i).is_equal ("action") )
               then
                      pers.realiser_action (chaine_decomposee.at (3))
               end -- fin action

               -- s'il s'agit d'un objet
               if (chaine_decomposee.at (i).is_equal ("objet") )
               then
                      ens_obj.ajouter_objet (chaine_decomposee.at (3) )
               end -- fin objet

               -- s'il s'agit d'une confrontation
               if (chaine_decomposee.at (i).is_equal ("confrontation") )
               then
                       pers.confronter ( chaine_decomposee.at (3))
               end -- fin confrontation

               -- s'il s'agit d'une evolution
               if (chaine_decomposee.at (i).is_equal ("evolution") )
               then
                     pers.mise_a_jour_capacite (chaine_decomposee.at (3),chaine_decomposee.at (4).to_integer)

               end -- fin traitement evolution


               -- s'il s'agit d'une demande d'un listing
               if (chaine_decomposee.at (i).is_equal ("list") )
               then
                    if (chaine_decomposee.at (i+1).is_equal ("caracterisques") )
                       then
							io.put_string("%N NOM:" + pers.get_nom)
							io.put_string("%N RESSOURCES:") io.put_integer (pers.get_ressource)
							io.put_string("%N ENERGIE:") io.put_integer (pers.get_energie)
							io.put_string("%N SANTE:") io.put_integer (pers.get_sante)
							io.put_string("%N EXPERIENCE:") io.put_integer (pers.get_experience)
							io.put_string("%N ATTAQUE:") io.put_integer (pers.get_attaque)
							io.put_string("%N DEFENSE:") io.put_integer (pers.get_defense)

                       end
                       if (chaine_decomposee.at (3).is_equal ("actions") )
                       then
						  jeu.liste_action
                       end
                       if (chaine_decomposee.at (3).is_equal ("objets") )
                       then
						  jeu.liste_objet
                       end
                       if (chaine_decomposee.at (3).is_equal ("personnages") )
                       then
						  jeu.liste_personnage
                       end
               end -- fin traitement listing

               -- s'il s'agit d'une demande de deconnection
               if (chaine_decomposee.at (2).is_equal ("logout") )
               then
                    ses.logout(chaine_decomposee.at(1).to_integer)
               end -- fin logout

	 end -- parseur


end-- class APPLICATION
